﻿// --------------------------------------------------------------------------------------------------------------------
// <copyright file="Category.cs" company="Spenta Consulting">
//   (c) Copyright 2011
// </copyright>
// <summary>
//   Extends the category class with the required metadata
// </summary>
// --------------------------------------------------------------------------------------------------------------------

namespace Spenta.StreetCare.Core.Models
{
    using System.ComponentModel.DataAnnotations;
    using Attributes;

    using Spenta.StreetCare.Core.Shared.Attributes;

    /// <summary>
    /// Extends the category class with the required metadata
    /// </summary>
    [MetadataType(typeof(CategoryMetadata))]
    public partial class Category
    {
        /// <summary>
        /// Metadata for Report class
        /// </summary>
        public class CategoryMetadata
        {
            /// <summary>
            /// Gets or sets the report title.
            /// </summary>
            /// <value>
            /// The report title.
            /// </value>
            [LocalizedRequired(null)]
            [LocalizedStringLength(255)]
            [LocalizedDisplayName("CategoryTitleField")]
            public string CategoryTitle { get; set; }

            /// <summary>
            /// Gets or sets the category key.
            /// </summary>
            /// <value>
            /// The category key.
            /// </value>
            [LocalizedRequired(null)]
            [LocalizedStringLength(50)]
            [LocalizedDisplayName("CategoryKeyField")]
            public string CategoryKey { get; set; }

            /// <summary>
            /// Gets or sets the category description.
            /// </summary>
            /// <value>
            /// The category description.
            /// </value>
            [LocalizedStringLength(2000)]
            [LocalizedDisplayName("CategoryDescriptionField")]
            public string CategoryDescription { get; set; }

            /// <summary>
            /// Gets or sets the category image URL.
            /// </summary>
            /// <value>
            /// The category image URL.
            /// </value>
            [LocalizedStringLength(255)]
            [LocalizedDisplayName("CategoryImageUrlField")]
            public string CategoryImageUrl { get; set; }
        }
    }
}
